/*
 * Copyright 2007 Google Inc.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package info.touret.winecellar.client;

import info.touret.winecellar.userinfo.client.UserInfoService;
import info.touret.winecellar.userinfo.client.UserInfoServiceAsync;

import com.google.gwt.core.client.GWT;
import com.google.gwt.resources.client.CssResource;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.ComplexPanel;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.Widget;

/**
 * A component that displays a list of contacts.
 */
public class Preferences extends Composite {

	interface Binder extends UiBinder<Widget, Preferences> {
	}

	interface Style extends CssResource {
		String item();
	}

	private static final Binder binder = GWT.create(Binder.class);

	@UiField
	ComplexPanel panel;
	@UiField
	Style style;

	public Preferences() {
		initWidget(binder.createAndBindUi(this));
		buildAuthSubUrl();
	}

	private void buildAuthSubUrl() {
		UserInfoServiceAsync userInfoService = (UserInfoServiceAsync) GWT
				.create(UserInfoService.class);

		AsyncCallback<String> callback = new AsyncCallback<String>() {
			@Override
			public void onFailure(Throwable arg0) {
				GWT.log("erreur dans la recuperation de l url de deconnexion:"
						+ arg0.getLocalizedMessage());
			}

			@Override
			public void onSuccess(String url) {
//				panel.add(new HTML(new SafeHtmlBuilder()
//						.appendEscaped("<a href='").appendEscaped(url)
//						.appendEscaped("'>")
//						.appendEscaped("Autorisation Google")
//						.appendEscaped("</a>").toSafeHtml()));
				panel.add(new HTML("<a href='"+url+"'>"+"Autorisation Google"+"</a>"));
				
			}
		};
		userInfoService.createGoogleAuthURL(GWT.getHostPageBaseURL(), callback);
	}
}
